home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-08 | 33.6 KB | 909 lines | [TEXT/R*ch] |
- C.S.M.P. Digest Wed, 28 Oct 92 Volume 1 : Issue 199
-
- Today's Topics:
-
- How to tell if NAN?
- ARA programatic interface
- Looking for fast sorting code for pascal
- Does anyone recognize _Jackson?
- Synchronizing AppleEvents
-
-
-
- The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
-
- The digest is a collection of article threads from the internet newsgroup
- comp.sys.mac.programmer. It is designed for people who read c.s.m.p. semi-
- regularly and want an archive of the discussions. If you don't know what a
- newsgroup is, you probably don't have access to it. Ask your systems
- administrator(s) for details. (This means you can't post questions to the
- digest.)
-
- Each issue of the digest contains one or more sets of articles (called
- threads), with each set corresponding to a 'discussion' of a particular
- subject. The articles are not edited; all articles included in this digest
- are in their original posted form (as received by our news server at
- cs.uoregon.edu). Article threads are not added to the digest until the last
- article added to the thread is at least one month old (this is to ensure that
- the thread is dead before adding it to the digest). Article threads that
- consist of only one message are generally not included in the digest.
-
- The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
- [128.223.8.8] in the directory /pub/mac/csmp-digest. Be sure to read the
- file /pub/mac/csmp-digest/README before downloading any files. The most
- recent issues are available from sumex-aim.stanford.edu [36.44.0.6] in the
- directory /info-mac/digest/csmp. If you don't have ftp capability, the sumex
- archive has a mail server; send a message with the text '$MACarch help' (no
- quotes) to LISTSERV@ricevm1.rice.edu for more information.
-
- The digest is also available via email. Just send a note saying that you
- want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
- automatically receive each new issue as it is created. Sorry, back issues
- are not available through the mailing list.
-
- Send administrative mail to mkelly@cs.uoregon.edu.
-
-
- -------------------------------------------------------
-
- From: bowman@reed.edu (Eric Bowman (bobo))
- Subject: How to tell if NAN?
- Date: 19 Sep 92 23:06:10 GMT
- Organization: Reed College, Portland, OR
-
- My apologies if you see this twice...I posted it once, but it never showed up
- here, so I'm posting again.
-
- I'm wondering the most general way to tell if a number is NAN. I don't care
- what kind of NAN it is; I only want to know that it is. This occurs in a
- replacement for printf, so actually catching the exception is not what I want
- to do; I just want to print "NAN" or somesuch rather than have my code loop
- endlessly wondering what the hell it's been passed. (I'm sure this is in
- the SANE manual, but some asshole appears to have stolen it.)
-
- Thanks,
- bobo
- bowman@reed.edu
-
- +++++++++++++++++++++++++++
-
- From: johnsond@halcyon.com (David E. Johnson)
- Date: 20 Sep 92 01:51:24 GMT
- Organization: Northwest Nexus Inc. (206) 455-3505
-
-
- > ...
-
- try
- FUNCTION ClassExtended(x: Extended): NumClass;
- (as in ClassExtended(theNum)<>NormalNum)
- or FUNCTION NAN(i: INTEGER): Extended;
-
- NAN's with extendeds & doubles are a pain in the neck
- Another hack is to convert it to a string and compare it to
- NAN.
-
- David E Johnson
- ..sig not available. default enabled: johnsond@halcyon.com
-
- +++++++++++++++++++++++++++
-
- From: carlton@cs.berkeley.edu (Mike Carlton)
- Date: 22 Sep 92 03:13:25 GMT
- Organization: University of California, Berkeley
-
- In article <1992Sep19.230610.18666@reed.edu> bowman@reed.edu (Eric Bowman
- (bobo)) writes:
- - - My apologies if you see this twice...I posted it once, but it never showed up
- - - here, so I'm posting again.
- - -
- - - I'm wondering the most general way to tell if a number is NAN. I don't care
- - - what kind of NAN it is; I only want to know that it is. This occurs in a
- - - replacement for printf, so actually catching the exception is not what I want
- - - to do; I just want to print "NAN" or somesuch rather than have my code loop
- - - endlessly wondering what the hell it's been passed. (I'm sure this is in
- - - the SANE manual, but some asshole appears to have stolen it.)
- - -
- - - Thanks,
- - - bobo
- - - bowman@reed.edu
-
- That's easy, by definition of a NaN:
- if (x != x)
- printf("x is a NaN\n");
-
- For more info, see 'man 3m math' on a decent unix box (i.e. any box which
- uses IEEE 754).
-
- cheers,
- - --mike (carlton@cs.berkeley.edu)
-
- ---------------------------
-
- From: wdh@well.sf.ca.us (Bill Hofmann)
- Subject: ARA programatic interface
- Date: 21 Sep 92 16:08:47 GMT
- Organization: Whole Earth 'Lectronic Link
-
- I seem to recall hearing of a programatic interface (aka API) to AppleTalk
- Remote Access. Was I halucinating? If not, where can I get docs?
-
- - -Bill Hofmann
-
- +++++++++++++++++++++++++++
-
- From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)
- Date: 22 Sep 92 05:55:10 GMT
- Organization: University of Waikato, Hamilton, New Zealand
-
- In article <wdh.717091727@well.sf.ca.us>, wdh@well.sf.ca.us (Bill Hofmann) writes:
- > I seem to recall hearing of a programatic interface (aka API) to AppleTalk
- > Remote Access. Was I halucinating? If not, where can I get docs?
-
- There are two products that might be what you're looking for. Both are
- available from APDA:
-
- * The AppleTalk Remote Access Developer's Toolkit v.1.0, code R0128LL/A, US$30.
-
- This details the neat features of the ARA protocol, including SmartBuffering
- compression and the "SecurityZone" feature for controlling inbound calls to
- machines on your network. It also describes the services you can call
- on, new AppleTalk Transition Queue events, how to coexist with the Serial Port
- Arbitrator, and so on.
-
- * The AppleTalk Remote Access Modem Toolkit v.1.0, code R0129LL/B, US$25.
-
- This gives you instructions on how to create connection scripts to work with
- particular modems or PBXs.
-
- Lawrence D'Oliveiro fone: +64-7-856-2889
- Computer Services Dept fax: +64-7-838-4066
- University of Waikato electric mail: ldo@waikato.ac.nz
- Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00
- If only people would complete their sentences.
-
- ---------------------------
-
- From: mxmora@unix.sri.com (Matthew Xavier Mora)
- Subject: Looking for fast sorting code for pascal
- Date: 10 Sep 92 00:13:03 GMT
- Organization: SRI International
-
- Does anybody have code for sorting in pascal? I have a dismal version
- of an exchange sort working that I ported from a basic program. I tried
- porting
- hayden's fastqsort.c code but it doesn't seem to work. ( I haven't tried
- to find out what's wrong with it because it trashes my heap every time and
- I have to reboot.)
-
- I know this is text book stuff but maybe someone has already done
- the work and even included some inline asm for the memswap code.
-
- Thanks
-
- Matt
-
-
- +++++++++++++++++++++++++++
-
- From: aep@world.std.com (Andrew E Page)
- Date: 17 Sep 92 12:00:17 GMT
- Organization: The World Public Access UNIX, Brookline, MA
-
-
- As far as the heap collisions are concerned.... The QSort algorithms
- that I've seen in the past depend on recursion. This leads to the
- posibility that your stack is somehow slamming into your heap,
- leading to a Sys Err ID=28. This can be due to a couple of things...
- If the condition that would terminate the recursion is never evaluated
- then the function will keep iterating until the stack zooms into the
- heap. Another possibility is that your local variables in the
- recursion function are taking up too much room. See if you can trim
- them down, avoid Str255s like the plauge in recursion functions.
-
-
- - --
- Andrew E. Page CTO(Warrior Poet)| Decision and Effort The Archer and Arrow
- DSP Ironworks | The difference between what we are
- Macintosh and DSP Technology | and what we want to be.
-
- +++++++++++++++++++++++++++
-
- From: Bruce.Hoult@bbs.actrix.gen.nz
- Date: Fri, 18 Sep 1992 00:49:16 GMT
- Organization: Actrix Information Exchange
-
- In article <Buq1CI.Mnz@world.std.com> aep@world.std.com (Andrew E Page) writes:
- >
- > As far as the heap collisions are concerned.... The QSort algorithms
- > that I've seen in the past depend on recursion. This leads to the
- > posibility that your stack is somehow slamming into your heap,
- > leading to a Sys Err ID=28.
-
- Recursion is, of course, necessary in QuickSort, but you can easily
- guarentee that it will go no deeper than log2(n) -- i.e. only 20
- levels when sorting a million elements.
-
- Here's my tried and tested Pascal sorting routine (written on the Mac
- in 1987). I've found it reliable and fast. It tries to be reasonably
- clever about avoiding bad partitioning, using the minimum of recursion
- and using the best algorithm for the amount of data to be sorted.
-
- - -- Bruce
-
- - -------------
- procedure sort(
- left, right:longint;
- function less_than(a,b:longint):boolean;
- procedure swap(a,b:longint)
- );
- var
- i, j, mid, median, small_pos: longint;
- begin
- while (right-left) >= 15 do begin
- mid := (left+right) div 2;
-
- {find the Median of left, mid, right}
- if less_than(left,mid) then begin
- if less_than(mid,right) then median := mid
- else if less_than(left,right) then median := right
- else median := left
- end else begin
- if less_than(left,right) then median := left
- else if less_than(mid,right) then median := right
- else median := mid;
- end; {finding the median}
-
- {
- partition the region into three:
-
- left <= x <= j: those smaller than median
- j < x < i: those equal to median
- i <= x <= right: those greater than median
- }
- i := left;
- j := right;
- while i <= j do begin
- while (i<right) & less_than(i,median) do i := i + 1;
- while (j>left) & less_than(median,j) do j := j - 1;
- if i <= j then begin
- if i < j then begin
- {watch for median getting moved under us!}
- if median = i then median := j
- else if median = j then median := i;
- swap(i,j);
- end;
- {no need to look at these two again}
- i := i + 1;
- j := j - 1;
- end;
- end;
- {skip over any items equal to the guess of the median}
- while (i<right) & not less_than(median,i) do i := i + 1;
- while (j>left) & not less_than(j,median) do j := j - 1;
-
- {now sort the two halves}
- if (j-left) < (right-i) then begin
- {the left half is smaller -- sort it recursively first}
- sort(left,j,less_than,swap);
- left := i; {prepare for next iteration}
- end else begin
- {the right half is smaller -- sort it recursively first}
- sort(i,right,less_than,swap);
- right := j; {prepare for next iteration}
- end;
- end; {while more than xxx elements to sort}
-
- {now selection sort any remaining elements}
- for i := left to right-1 do begin
- small_pos := i;
- for j := i+1 to right do
- if less_than(j,small_pos) then small_pos := j;
- if small_pos <> i then swap(i,small_pos);
- end;
-
- end; {sort}
- - --
- Bruce.Hoult@bbs.actrix.gen.nz Twisted pair: +64 4 477 2116
- BIX: brucehoult Last Resort: PO Box 4145 Wellington, NZ
- "Cray's producing a 500 MIPS personal computer with 256MB RAM and 8 GB
- hard disk that fits in your pocket!" "Great! Is it PC compatible?"
-
- +++++++++++++++++++++++++++
-
- From: lewis@sophists.com (Lewis G. Pringle)
- Date: 20 Sep 92 00:56:56 GMT
- Organization: Sophist Solutions
-
- In article <1992Sep18.004916.10633@actrix.gen.nz> Bruce.Hoult@bbs.actrix.gen.nz writes:
- >In article <Buq1CI.Mnz@world.std.com> aep@world.std.com (Andrew E Page) writes:
- >>
- >> As far as the heap collisions are concerned.... The QSort algorithms
- >> that I've seen in the past depend on recursion. This leads to the
- >> posibility that your stack is somehow slamming into your heap,
- >> leading to a Sys Err ID=28.
- >
- >Recursion is, of course, necessary in QuickSort, but you can easily
- >guarentee that it will go no deeper than log2(n) -- i.e. only 20
- >levels when sorting a million elements.
-
- Actually recursion is NOT ever necessary in implementing any program. The
- recursive algorithm can always be rewriten to keep an array (simulating
- what the program stack would have done) of values that would have been
- passed as parameters.
-
- I would, OF COURSE, agree that QuickSort is most simply, and naturally
- written recusively. But if you have some limit on how much stack space
- you can use, its not hard to rewrite QuickSort non-recursively.
-
-
- Lewis.
-
- +++++++++++++++++++++++++++
-
- From: Bruce.Hoult@bbs.actrix.gen.nz
- Date: 20 Sep 92 15:05:11 GMT
- Organization: Actrix Information Exchange
-
- In article <1992Sep20.005656.15742@sophists.com> lewis@sophists.com (Lewis G. Pringle) writes:
- > >Recursion is, of course, necessary in QuickSort, but you can easily
- > >guarentee that it will go no deeper than log2(n) -- i.e. only 20
- > >levels when sorting a million elements.
- >
- > Actually recursion is NOT ever necessary in implementing any program. The
- > recursive algorithm can always be rewriten to keep an array (simulating
- > what the program stack would have done) of values that would have been
- > passed as parameters.
-
- You're making a distinction without a difference. QuickSort is a
- recursive algorithm. The computers we use are only Finite State
- Machines, not Push Down Automata, so you have a choice: either write
- your program using recursive notation and have your compiler convert
- it to an iterative form using (usually) the hardware supplied stack,
- or else convert it to iterative form yourself and manage your own stack.
-
-
-
- > But if you have some limit on how much stack space
- > you can use, its not hard to rewrite QuickSort non-recursively.
-
- How would that help? Perhaps you would save a few less values on your
- own stack than my procedure saves on its, but I could trivially
- rewrite mine to use less stack space, if necessary, by changing some
- of my automatic variables to static, global, or automatic variables in
- an enclosing interface procedure, leaving only perhaps the parameters
- left&right and the local variables i and j on the stack on each
- recursive invocation, plus of course the program counter (and saved
- frame pointer using most Mac compilers).
-
- In any case, even in its present form, the posted routine will use
- less than a thousand bytes of stack, even when sorting many millions
- of elements. It's hard to imagine an application in which you can
- find space for millions of data elements, but can't find a K for a stack.
-
- In the same situation, your "iterative" routine would still require a
- half K for your explicitely managed stack, and I could come very close
- to that with a slight rewrite (but still in recursive form) if I
- thought there was a need.
-
- - -- Bruce
-
- - --
- Bruce.Hoult@bbs.actrix.gen.nz Twisted pair: +64 4 477 2116
- BIX: brucehoult Last Resort: PO Box 4145 Wellington, NZ
- "Cray's producing a 500 MIPS personal computer with 256MB RAM and 8 GB
- hard disk that fits in your pocket!" "Great! Is it PC compatible?"
-
- +++++++++++++++++++++++++++
-
- From: Bruce.Hoult@bbs.actrix.gen.nz
- Date: 21 Sep 92 14:34:02 GMT
- Organization: Actrix Information Exchange
-
- In article <D88-JWA.92Sep21145200@dront.nada.kth.se> d88-jwa@dront.nada.kth.se (Jon Wdtte) writes:
- >
- > With QuickSort, you have a worst-case scenario where you use
- > stack linearly with the number of items... However, usually
- > you can code a little cleverness into it so that won't happen.
- >
- > Or have you never seen System Error 28 ? :-)
-
- Only with a very naive my-first-quicksort implementation. If you hit
- the "[" key a couple of times in your trn you'll find that my posted
- QuickSort code can't recurse more than log2(n) times because it
- recurses on the *smaller* of the two partitions, and then iterates on
- the larger one. The worst case for sorting performance is the best
- case for stack usage!
- - --
- Bruce.Hoult@bbs.actrix.gen.nz Twisted pair: +64 4 477 2116
- BIX: brucehoult Last Resort: PO Box 4145 Wellington, NZ
- "Cray's producing a 500 MIPS personal computer with 256MB RAM and 8 GB
- hard disk that fits in your pocket!" "Great! Is it PC compatible?"
-
- ---------------------------
-
- From: Roger.W.Brown@dartmouth.edu (Roger W. Brown)
- Subject: Does anyone recognize _Jackson?
- Date: 4 Sep 92 13:38:44 GMT
- Organization: Dartmouth College, Hanover, NH
-
- I frequently see this symbol in MacsBug when my Quadra crashes:
- _Jackson. I haven't looked through the Tech Notes yet. I wondered if
- anyone knows what it is. It does something with color icons. I just
- want to know that it isn't a virus, and maybe that it is from an
- extension that may be causing trouble.
-
- - --------------------------------------------------------------------
- Roger Brown roger.brown@dartmouth.edu
- Software Development
- Kiewit Computation Center, Dartmouth College, Hanover, NH
-
- +++++++++++++++++++++++++++
-
- From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
- Date: 4 Sep 92 16:14:18 GMT
- Organization: Kalamazoo College
-
- Roger.W.Brown@dartmouth.edu (Roger W. Brown) writes:
- >I frequently see this symbol in MacsBug when my Quadra crashes:
- >_Jackson. I haven't looked through the Tech Notes yet.
-
- You won't find it there. :-)
-
- >I wondered if
- >anyone knows what it is. It does something with color icons.
-
- It's an internal trap that QuickDraw uses for doing stuff with memory.
- Those branches to _DisposCIcon+xxxx don't necessarily have anything to
- do with color icons. And if you ever hit the _Debugger trap in there,
- something went wrong _before_ the trap was called. Giving the app more
- memory may or may not fix it; it's worth a try.
-
- And it gets its name from Jackson Pollock, the modern painter whose name
- was given to early versions of Color QuickDraw. (Or is it 32-bit
- QuickDraw? I've never been good at trivia...)
-
- >I just
- >want to know that it isn't a virus, and maybe that it is from an
- >extension that may be causing trouble.
-
- Nope, it's in your machine's ROM. (It's hard to put a virus there.)
-
- Note the followup; hopefully csmp won't start up another flood of
- _Jackson trivia...?
- - --
- Jamie McCarthy Internet: k044477@kzoo.edu AppleLink: j.mccarthy
- The essence of OOP: "After some hacking, I finally got the program to
- work, but I'm still not sure why." - David Marcovitz (marcovitz@uiuc.edu)
-
- +++++++++++++++++++++++++++
-
- From: marshall@sdd.hp.com (Marshall Clow)
- Date: 4 Sep 1992 16:22:21 GMT
- Organization: Hewlett Packard San Diego Printer Division
-
- In article <1992Sep4.133844.20178@dartvax.dartmouth.edu>,
- Roger.W.Brown@dartmouth.edu (Roger W. Brown) wrote:
- >
- > I frequently see this symbol in MacsBug when my Quadra crashes:
- > _Jackson. I haven't looked through the Tech Notes yet. I wondered if
- > anyone knows what it is. It does something with color icons. I just
- > want to know that it isn't a virus, and maybe that it is from an
- > extension that may be causing trouble.
- >
- > --------------------------------------------------------------------
- > Roger Brown roger.brown@dartmouth.edu
- > Software Development
- > Kiewit Computation Center, Dartmouth College, Hanover, NH
-
- It isn't a virus. Look closely, and you will notice that the address that
- you are looking at is in ROM.
-
- On my Quadra 900:
- $4083143A: JACKSONPOLLOCK _Debugger
- $4083143C: RNEWHANDLE _NewHandle, SYS, CLEAR
- $4083143E: RNEWHANDLE + $0002 BNE.S $40831432
- and so on.....
-
- It's where QuickDraw jumps to if it gets an error that it can't recover
- from (mostly when it runs out of memory). Never, never, do region
- operations
- where you could possibly not have enough memory!
-
- Marshall Clow
- San Diego Printer Division Hewlett Packard
- Internet: marshall@sdd.hp.com AppleLink: HP.Marshall AOL: MClow
-
- P.S. "Jackson Pollock" was the code name for 32-bit QuickDraw.
-
- +++++++++++++++++++++++++++
-
- From: wieser@acs.ucalgary.ca (Bernie Wieser)
- Date: Fri, 04 Sep 92 20:34:57 GMT
- Organization: The University of Calgary, Alberta
-
- As the illustrious Tom from Apple says, this is most frequently
- indicative of a segment loader problem.
-
- Jackson, error 25, etc.
-
- I most often get this with 32 bit segloader patch.
- - --
- Bernie Wieser
- wieser@acs.ucalgary.ca
- HYPROTECH.BW@applelink.apple.com
-
- +++++++++++++++++++++++++++
-
- From: chuq@gallant.apple.com (Chuq Von Rospach)
- Date: 4 Sep 92 19:31:38 GMT
- Organization: I is a writur
-
- Roger.W.Brown@dartmouth.edu (Roger W. Brown) writes:
-
- >I frequently see this symbol in MacsBug when my Quadra crashes:
- >_Jackson.
-
- Yes, usually when an after dark module crashes.
-
-
- - --
- Chuq "IMHO" Von Rospach, ESD Support & Training (DAL/AUX) =+= Member, SFWA
- chuq@apple.com | GEnie: MAC.BIGOT | ALink:CHUQ =+= Editor, OtherRealms
-
- I believe there should be a constitutional amendment outlawing the
-
- +++++++++++++++++++++++++++
-
- From: stevem@cs.utexas.edu (Steve Anthony Mariotti)
- Date: 14 Sep 1992 19:11:26 -0500
- Organization: U Texas Dept of Computer Sciences, Austin TX
-
- In article <1992Sep4.133844.20178@dartvax.dartmouth.edu> Roger.W.Brown@dartmouth.edu (Roger W. Brown) writes:
- >I frequently see this symbol in MacsBug when my Quadra crashes:
- >_Jackson. I haven't looked through the Tech Notes yet. I wondered if
- >anyone knows what it is. It does something with color icons. I just
- >want to know that it isn't a virus, and maybe that it is from an
- >extension that may be causing trouble.
-
- I'm guessing that this is the same trap that TMON Pro referred to as
- _JacksonPollock. I know that it's related to Color QuickDraw, but I
- didn't bother reading through the code.
-
- A similar question to yours: what the hell is _Bass? I was getting some
- crashes when a program I was fixing thrashed thePort, and my stack crawl
- led me through some code low in memory (very low, like $00001000 or so) that
- called _Bass.
-
- Does anyone know what _Bass is? Can I expect to find _Trout, _Snapper,
- _Haddock, _Cod, and more?
-
- Steve Mariotti
- stevem@cs.utexas.edu
-
- +++++++++++++++++++++++++++
-
- From: d88-jwa@black.nada.kth.se (Jon W{tte)
- Date: 15 Sep 92 11:46:39 GMT
- Organization: Royal Institute of Technology, Stockholm, Sweden
-
- > stevem@cs.utexas.edu (Steve Anthony Mariotti) writes:
-
- Does anyone know what _Bass is? Can I expect to find _Trout, _Snapper,
- _Haddock, _Cod, and more?
-
- Or maybe _Drums, _Guitar and _Cutup too ? :-)
-
- - --
- Jon W{tte, h+@nada.kth.se, Sweden, Phone +46-8-107069
-
- Help eradicate FIDO-Net <-> Usenet gateways in our time!
-
- +++++++++++++++++++++++++++
-
- From: dwb@apple.com (David W. Berry)
- Date: 15 Sep 92 22:24:07 GMT
- Organization: Greenwing Enterprises
-
- In article <lbaaheINNmja@coltexo.cs.utexas.edu> Steve Anthony Mariotti,
- stevem@cs.utexas.edu writes:
- >I'm guessing that this is the same trap that TMON Pro referred to as
- >_JacksonPollock. I know that it's related to Color QuickDraw, but I
- >didn't bother reading through the code.
- _JacksonPollock is a vectored trap that was added for 32-bit QuickDraw.
-
- >
- >A similar question to yours: what the hell is _Bass? I was getting some
- >crashes when a program I was fixing thrashed thePort, and my stack crawl
- >led me through some code low in memory (very low, like $00001000 or so)
- that
- >called _Bass.
- Since Bass was the code name for the spline font project, I assume that
- _Bass is an internal trap implementing the spline fonts.
-
- +++++++++++++++++++++++++++
-
- From: stevem@cs.utexas.edu (Steve Anthony Mariotti)
- Date: 15 Sep 1992 20:21:10 -0500
- Organization: U Texas Dept of Computer Sciences, Austin TX
-
- In article <30569@goofy.Apple.COM> dwb@apple.com (David W. Berry) writes:
- >In article <lbaaheINNmja@coltexo.cs.utexas.edu> Steve Anthony Mariotti,
- >stevem@cs.utexas.edu writes:
- >>A similar question to yours: what the hell is _Bass? I was getting some
- >>crashes when a program I was fixing thrashed thePort, and my stack crawl
- >>led me through some code low in memory (very low, like $00001000 or so)
- >that
- >>called _Bass.
-
- >Since Bass was the code name for the spline font project, I assume that
- >_Bass is an internal trap implementing the spline fonts.
-
- Ok, so now the question is: Is it pronounced like the fish or the four-stringed
- electric instrument? BASE or BASS, I gotta know.
-
- Steve Mariotti
- stevem@cs.utexas.edu
-
-
-
- +++++++++++++++++++++++++++
-
- From: smargari@nmsu.edu (Susan Margarit)
- Organization: NMSU Computer Science
- Date: Wed, 16 Sep 1992 03:01:45 GMT
-
- My first impression of the meaning of _Jackson in conjunction with
- crashes was that Jackson is slang for a certain portion of the male
- anatomy. I kind of thought that when you get Jackson'ed, you've been
- f***ed.
-
- Jim Margarit
-
- +++++++++++++++++++++++++++
-
- From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
- Organization: Kalamazoo College
- Date: Wed, 16 Sep 1992 17:51:17 GMT
-
- stevem@cs.utexas.edu (Steve Anthony Mariotti) writes:
- >...what the hell is _Bass?
- >
- >Ok, so now the question is: Is it pronounced like the fish or the four-stringed
- >electric instrument? BASE or BASS, I gotta know.
-
- Like the fish. Someone on the programming team enjoying fishing, I think.
- - --
- Jamie McCarthy Internet: k044477@kzoo.edu AppleLink: j.mccarthy
- "I don't think we should have to have them wandering the streets
- frightening women and people." - Pat Buchanan
-
- +++++++++++++++++++++++++++
-
- From: owen@lloyd.Camex.COM (Owen Hartnett)
- Date: 16 Sep 92 16:22:42 GMT
- Organization: Camex Inc., Boston MA
-
- The symbol JACKSON POLLOCK (note the OCK, not ACK) also appears in the
- MPW ROM symbol maps, which is probably where the debuggers find it.
-
- Note that the painter, Jackson Pollock, was famous for painting these
- dripping types of modern art, which is reminiscent of certain Mac crashes,
- which points out the poignancy of the label's proximity to the _Debugger
- trap.
-
- - -Owen
-
- P.S. Thanks to my associates here, Kent Borg & Norm Speciner, who
- were able to identify Mr. Pollock, who entered our conversation recently
- from out of nowhere.
-
- +++++++++++++++++++++++++++
-
- From: boyd@apple.com (Scott Boyd)
- Date: 17 Sep 92 07:24:59 GMT
- Organization: Apple Computer Inc.
-
- In article <lbd306INN29o@tokio.cs.utexas.edu>, stevem@cs.utexas.edu (Steve
- Anthony Mariotti) wrote:
- >
- > In article <30569@goofy.Apple.COM> dwb@apple.com (David W. Berry) writes:
- > >In article <lbaaheINNmja@coltexo.cs.utexas.edu> Steve Anthony Mariotti,
- > >stevem@cs.utexas.edu writes:
- > >>A similar question to yours: what the hell is _Bass? I was getting some
- > >>crashes when a program I was fixing thrashed thePort, and my stack crawl
- > >>led me through some code low in memory (very low, like $00001000 or so)
- > >that
- > >>called _Bass.
- >
- > >Since Bass was the code name for the spline font project, I assume that
- > >_Bass is an internal trap implementing the spline fonts.
- >
- > Ok, so now the question is: Is it pronounced like the fish or the four-stringed
- > electric instrument? BASE or BASS, I gotta know.
-
- _Bass is pronounced like the fish, and would rhyme with class.
- Rather than looking for other fish names, you might think of
- the name of other ales. Not that you'll find any, but it might
- give you a clue as to a possible origin of the name.
-
- _Jackson is the place where QuickDraw goes when it simply cannot recover
- from a serious error condition.
-
- Hope you find this useful.
-
- macintosh system software
- boyd@apple.com
-
- +++++++++++++++++++++++++++
-
- From: paul@taniwha.UUCP (Paul Campbell)
- Date: 19 Sep 92 17:39:37 GMT
- Organization: Taniwha Systems Design
-
- In article <1992Sep16.122242.28529@lloyd.Camex.COM> owen@lloyd.Camex.COM (Owen Hartnett) writes:
- >The symbol JACKSON POLLOCK (note the OCK, not ACK) also appears in the
- >MPW ROM symbol maps, which is probably where the debuggers find it.
-
- Let's put this one to death .... 'Jackson Pollock' was the code name for
- 32-bit Quickdraw, _Jackson is the entry point for the new 32-bit QD traps,
- you get faults on it when you run code that uses it in systems that don't
- have it. "Bass" was a code name for true-type, _Bass is the t-t trap for
- the new t-t calls etc etc
-
- A great way to snoop out new Apple code names is do dump out MacsBug's
- trap symbol table and see what's in there that you don't recognize
- (for example '_Egret') ....
-
- Paul
-
- - --
- Paul Campbell UUCP: ..!mtxinu!taniwha!paul AppleLink: CAMPBELL.P
-
- So far the Republican's economic policy is best described
- as "C'est la vie Capitalism"
-
- ---------------------------
-
- From: flournoy@Xenon.Stanford.EDU (Raymond Suke Flournoy)
- Subject: Synchronizing AppleEvents
- Organization: Computer Science Department, Stanford University.
- Date: Thu, 17 Sep 1992 22:17:22 GMT
-
-
- I am trying to use AppleEvents to facilitate communication between a
- client and a background server application and I think that my lack of
- success can be traced to a failure in sychronization between the two
- processes. Anyone out there who thinks they might be of some help?
-
- Right now, if the client simply launches, then kills the server, the
- program works perfectly fine. The only odd behavior is that periodic
- checking of Ticks shows that the launch and kill messages are both
- sent out before the server even begins.
-
- When a single message is added between the launch and kill, the
- program no longer works as expected. With the (Think C) debugger on,
- the message will be sent and reply received as expected, but without
- the debugger a system error and/or bus error occurs.
-
- One thought that I had was that the server needs to begin running
- before the send is sent out, and that somehow the debugger slows down
- the client enough that the server has time to begin, and thus
- synchronization is taken care of. But (if this is in fact the
- problem) how can I force synchronization without the debugger?
-
- I tried inserting a WaitNextEvent statement after the launch, but
- even with a sleep value of 6000 the Ticks show that only about 2-20
- ticks pass during the execution of the wait.
-
- Does anyone have a clue what my problem could be, and/or how I need
- to go about fixing it?
-
- Thanks for the help!
-
-
- - --Raymond Flournoy
- ======================================================================
- flournoy@cs.stanford.edu "For reasons I cannot explain
- Computer Science Dept. There's some part of me wants to see
- Stanford University, CA Graceland" -- P. Simon
-
- +++++++++++++++++++++++++++
-
- From: bpb9204@tamsun.tamu.edu (Brent)
- Date: 18 Sep 92 05:36:21 GMT
- Organization: Texas A&M Univ., Inc.
-
- flournoy@Xenon.Stanford.EDU (Raymond Suke Flournoy) writes:
- |
- |The only odd behavior is that periodic
- |checking of Ticks shows that the launch and kill messages are both
- |sent out before the server even begins.
- |
- | I tried inserting a WaitNextEvent statement after the launch, but
- |even with a sleep value of 6000 the Ticks show that only about 2-20
- |ticks pass during the execution of the wait.
- |
- | Does anyone have a clue what my problem could be, and/or how I need
- |to go about fixing it?
-
- For background, I've done client-server programs using message queues
- on UNIX systems (one server, n clients). On this little server I wrote,
- I started it, then started about 40 clients. It hummed away, doing what
- was asked. Under UNIX, it's easy because processes will be blocked,
- i.e., set into a non-running mode, by the operating system if no messages
- are available for the program.
-
- In the mac world, the program keeps ticking away, though.
- One idea I had after I read your note would be fairly easy to do. What
- I was thinking was that you could have the client start up, and then
- launch the server (was that what it was doing?). Once the client does
- that, have it wait for a "high sign." Once the server gets going, have
- it zap out an apple event to the client along the lines of a "Server
- Startup" message. This would clue the client that there is a server
- out there, waiting for requests. Then, the client may continue, sending
- events to the server.
-
- One note about the WaitNextEvent() call -- the sleep parameter, when used,
- does not guarantee that the program will be idle for that number of
- ticks. It just means that the program *could* be idle that long, if other
- applications needed the time. I was caught by this, too.
-
- Well, try my suggestion, if you want to, of course. And whatever you
- find that works, please let us know. I, for one, am interested in
- client-server operations.
-
- - -Brent
-
- +++++++++++++++++++++++++++
-
- From: minow@Apple.COM (Martin Minow)
- Date: 21 Sep 92 16:58:10 GMT
- Organization: Apple Computer Inc., Cupertino, CA
-
-
- Here's a simple recipe for doing server applications on the Mac. It
- requires System 7.0 or later:
-
- - -- the main application event loop calls WaitNextEvent with a very long
- sleep time. This will block it until something happens.
- - -- the application posts asychronous read requests (PPCRead or ATPRead)
- with a completion routine.
- - -- the read request should use a control block that has been extended to
- include all buffers and other variables that are needed for the request.
- The control block should also include the application A5 variable if you
- use AppleTalk.
- - -- the completion routine refreshes A5 and enqueues the control block to an
- application-global "work queue." It then calls WakeUpProcess to pull the
- application out of WaitNextEvent. WakeUpProcess is only available under
- System 7.0 and later.
- - -- as part of the application event loop process, the application checks
- for a non-empty work queue. If there is something, it dequeues it,
- processes it, and -- when complete -- re-posts the control block for
- another asychronouse read.
-
- Actually, the sequence is probably:
-
- - -- post asychronous read.
- - -- when the read completes, process request.
- - -- post asychronous write (reply).
- - -- when the write completes, post asychronous read.
-
- The above is a quick sketch. Any real server application will be more
- complex. For example, if you're using PPCToolbox, your primary cycle
- goes between PPCInform, PPCRead, PPCWrite, PPCEnd, and back to PPCInform.
-
- One advantage of doing most of the work in the main event loop (rather
- than in completion routines) is that you can debug most of your application
- using a "real" debugger (Think Debugger).
-
- Hope this helps.
-
- Martin Minow
- minow@apple.com
-
- ---------------------------
-
- End of C.S.M.P. Digest
- **********************
-